<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of carrinho
 *
 * @author Lucas Pinheiro
 */
class Carrinho extends MY_Controller {

    //put your code here
    /**
     * Construção automatica do metodo. 
     */
    public function __construct() {
        parent::__construct();
        $this->load->model('usuarios_model');
        $this->load->model('clientes_model');
        $this->load->model('produtos_model');
        $this->load->model('pedidos_model');
        $this->load->model('pedidos_itens_model');
        $this->load->library('cart');
    }

    /**
     * Adicionar
     *
     * Adicionar itens no carrinho.
     *
     * @return	void Redireciona os dados para a lista de carrinhos.
     */
    public function adicionar() {
        $b_consultar = $this->produtos_model->get('id_produtos', $this->input->post('id_produtos'));
        $data = array(
            'id' => (int) $b_consultar->id_produtos,
            'qty' => (int) $this->input->post('qtd'),
            'price' => (Double) $b_consultar->valor,
            'name' => (String) $b_consultar->nome
        );
        $this->cart->insert($data);
        redirect(base_url('carrinho/listar'));
    }

    /**
     * Remover
     *
     * Remover itens no carrinho.
     *
     * @return	void Redireciona os dados para a lista de carrinhos.
     */
    public function remover() {
        $this->cart->destroy();
        redirect(base_url('carrinho/listar'));
    }

    /**
     * Alterar
     *
     * Alterar itens no carrinho.
     *
     * @return	void Redireciona os dados para a lista de carrinhos.
     */
    public function alterar() {
        $p_dados = $this->input->post();
        foreach ($p_dados['qtd'] as $key => $value) {
            $data = array(
                'rowid' => md5($key),
                'qty' => $value
            );
            $this->cart->update($data);
        }
        redirect(base_url('carrinho/listar'));
    }

    /**
     * Listar
     *
     * Listar itens do carrinho.
     *
     * @return	void Redireciona os dados para a lista de carrinhos.
     */
    public function listar() {
        $b_consultar = $this->cart->contents();

        $v_dados = array();
        $v_dados['base_url'] = base_url();
        $v_dados['produtos'] = array();
        $v_dados['total_geral'] = 0;
        if (count($b_consultar) > 0) {
            foreach ($b_consultar as $key => $value) {
                $v_dados['produtos'][$key]['nome'] = $value['name'];
                $v_dados['produtos'][$key]['valor_unitario'] = number_format($value['price'], 2, ',', '.');
                $v_dados['produtos'][$key]['valor_total'] = number_format($value['subtotal'], 2, ',', '.');
                $v_dados['produtos'][$key]['quantidade'] = $value['qty'];
                $v_dados['produtos'][$key]['id_produtos'] = $value['id'];
                $v_dados['total_geral'] += $value['subtotal'];
            }
            $v_dados['total_geral'] = number_format($v_dados['total_geral'], 2, ',', '.');
            $this->display($this->parser->parse('carrinho_view', $v_dados, true), 'Carrinho de compras');
        } else {
            $this->display('Sem itens no carrinho.', 'Carrinho de compras');
        }
    }

    /**
     * Finalizar
     *
     * Finalizar carrinho de compra.
     *
     * @return	void View de dados.
     */
    public function finalizar() {
        if (!$this->session->userdata('email')) {
            redirect(base_url('clientes/login'));
        } else {
            $this->load->model('clientes_model');
            $b_usuarios = $this->usuarios_model->get('email', $this->session->userdata('email'));

            if ($b_usuarios == NULL) {
                redirect(base_url('clientes/cadastrar'));
            } else {
                $v_dados = array();
                $v_dados['base_url'] = base_url();
                $v_dados['produtos'] = array();
                $v_dados['email'] = $this->session->userdata('email');
                $v_dados['cliente'] = $this->session->userdata('nome');
                $v_dados['total_geral'] = 0;
                $b_consultar = $this->cart->contents();
                if (count($b_consultar) > 0) {
                    $dados_pedidos = array();
                    $dados_pedidos['id_clientes'] = $this->session->userdata('id_clientes');
                    $dados_pedidos['data_hora_cadastro'] = date('Y-m-d H:i:s');
                    $dados_pedidos['situacao'] = 1;
                    $id_pedido = $this->pedidos_model->cadastrar($dados_pedidos);
                    foreach ($b_consultar as $key => $value) {
                        $v_dados['produtos'][$key]['nome'] = $value['name'];
                        $v_dados['produtos'][$key]['valor_unitario'] = number_format($value['price'], 2, ',', '.');
                        $v_dados['produtos'][$key]['valor_total'] = number_format($value['subtotal'], 2, ',', '.');
                        $v_dados['produtos'][$key]['quantidade'] = $value['qty'];
                        $v_dados['produtos'][$key]['id_produtos'] = $value['id'];
                        $v_dados['total_geral'] += $value['subtotal'];
                        //cadastrar produtos
                        $dados_pedidos = array();
                        $dados_pedidos['id_pedidos'] = $id_pedido;
                        $dados_pedidos['id_produtos'] = $value['id'];
                        $dados_pedidos['valor_unitario'] = $value['price'];
                        $dados_pedidos['quantidade'] = $value['qty'];
                        $dados_pedidos['valor_total'] = $value['subtotal'];
                        $this->pedidos_itens_model->cadastrar($dados_pedidos);
                    }
                    $v_dados['total_geral'] = number_format($v_dados['total_geral'], 2, ',', '.');
                    $this->cart->destroy();
                    $this->display($this->parser->parse('carrinho_email_view', $v_dados, true), 'Carrinho de compras');
                } else {
                    $this->display('Sem itens no carrinho.', 'Carrinho de compras');
                }
            }
        }
    }

}